import axios from 'axios'
import store from '@/store'
import { Notify } from 'vant'
// 162.14.96.150
// http://162.14.96.150:8288

const request = axios.create({
  baseURL: 'http://162.14.96.150:8288'
})

// 设置请求拦截器进行接口鉴权
request.interceptors.request.use(config => {
  // 读取 store 中存储的 user 数据
  const { user } = store.state
  // 检测 user 是否存在数据，如果有，则进行 token 设置
  if (user && user.access_token) {
    config.headers.Authorization = user.access_token
  }
  return config
})

request.interceptors.response.use(function (response) {
  return response
}, function (error) {
  if (error.response) {
    const { status } = error.response
    let errorMessage = ''
    if (status === 400) {
      errorMessage = '请求参数错误'
    } else if (status === 401) {
      errorMessage = '未经授权，请联系管理员'
    } else if (status === 403) {
      errorMessage = '没有权限，请联系管理员'
    } else if (status === 404) {
      errorMessage = '请求资源不存在'
    } else if (status >= 500) {
      errorMessage = '服务端错误，请联系管理员'
    }
    Notify({ type: 'warning', message: errorMessage })
  } else if (error.request) {
    // 请求发送成功，但是未收到响应
    Notify({ type: 'warning', message: '请求超时，请重试' })
  } else {
    // 意料之外的错误
    Notify({ type: 'warning', message: error.message })
  }
  // 将本次请求的错误对象继续向后抛出，让接收响应的处理函数进行操作
  return Promise.reject(error)
})

export default request
